Java Service Wrapper简介与使用 您所在的位置:网站首页 wrapper engine应用程序 Java Service Wrapper简介与使用

Java Service Wrapper简介与使用

2024-06-27 05:05| 来源: 网络整理| 查看: 265

   在实际开发过程中很多模块需要独立运行,他们并不会以web形式发布,传统的做法是将其压缩为jar包独立运行,这种形式简单易行也比较利于维护,但是 一旦服务器重启或出现异常时,程序往往无法自行修复或重启。解决服务器重启的传统做法是编写一段shell脚本随服务器启动而运行,但是这样做只是治标, 那么我们想寻求一种“治本”的方式该怎么办呢?         Java Service Wrapper就轻松而简单的为我们解决了这些问题。"Java Service Wrapper"顾名思义,将我们的Java程序包装成系统服务,这样就可以随着系统的运行而自动运行,当然Java Service Wrapper(下面简称Wrapper)的功能绝不仅于此。

        Wrapper下载地址:http://wrapper.tanukisoftware.com/doc/english/download.jsp

 

        通过下载页面我们可以看到Wrapper几乎支持所有的系统环境,说明Wrapper在这方面还是很下工夫的,目前最新版本为3.5.20,我们选择Linux x86版本下载,解压后目录组成如下图所示:

 

        为了更直观的了解Wrapper的目录及文件结构,可以通过"tree"命令列出Wrapper的所有文件树,cmd控制台下输入命令:

tree /f      显示目录结构如下:   wrapper-linux-x86.       │  jdoc.tar.gz             //javadoc文件       │  README_de.txt           //说明       │  README_en.txt           //说明       │  README_es.txt           //说明       │  README_ja.txt           //说明       │       ├─bin                      //执行文件目录       │      demoapp             //示例程序       │      testwrapper         //测试程序       │      wrapper           //主程序(重要)       │       ├─conf                     //配置文件目录       │      demoapp.conf        //示例配置文件       │      wrapper.conf      //主配置文件(重要,文件名可修改)       │       ├─doc                      //说明文档目录       │      index.html          //首页       │      revisions.txt       //版本说明       │      wrapper-community-license-1.1.txt  //许可协议       │       ├─jdoc                     //javadoc文档目录       │      index.html          //首页       │       ├─lib                      //依赖类库目录       │      libwrapper.so     //wrapper linux文件(.so:用户层的动态库)       │      wrapper.jar       //wrapper主程序(重要)       │      wrapperdemo.jar     //示例程序       │      wrappertest.jar     //测试程序       │       ├─logs                     //日志目录       │      wrapper.log         //日志文件       │       └─src                      //源代码目录           ├─bin                  //执行程序目录           │      sh.script.in  //shell脚本源代码(重要)           └─conf                 //配置目录               wrapper.conf.in    //原始配置  

 

        以下是官方给出的一些Wrapper的优点:

        (1) 使用我们的产品无须在你的程序中添加任何额外的代码。         (2) 当你的程序或JVM出现问题时会自动响应事先定制的策略。         (3) 当出现问题时会及时进行通知。         (4) 完善的日志记录功能可以更好为您提供支持。         (5) 在不同的系统上你可以指定一个标准的流程相同流程,也就是说相同的程序可以不必修改即运行于不同系统。         (6) 可以将你的应用安装成windows或unix的服务或守护进程。

 

        看到Wrapper有这么多好处,那么我们就通过Wrapper自带的示例程序来进一步了解Wrapper吧:         1.创建服务工作目录,以操作系统为Linux,目录结构为usr/local/wrapper为例,按照上面的目录结构,在其下创建"bin","conf","lib","logs"这四个相同名称的文件夹。         2.将配置及程序文件复制至相应目录(也就是上面标的文件);         (1)bin 目录下的wrapper 文件复制到usr/local/wrapper/bin下。         (2)src\bin 目录下的sh.script.in 文件复制到usr/local/wrapper/bin下,并将.in后缀名删除并修改名称,修改后为javaService.script。         (3)conf 目录下的wrapper.conf 文件复制到usr/local/wrapper/conf下。         (4)lib 目录下的wrapper.jar 和libwrapper.so 文件复制到usr/local/wrapper/lib下。         注:以上是正式环境所需文件的配置方式,这里我们需要运行Wrapper自带的demo程序,所以需要将demoapp,demoapp.conf,wrapperdemo.jar 这三个文件复制到相应目录。         3.进入bin目录执行以下命令:

./demoapp start  

          接下来会显示很多提示,最终显示如下页面:

 

        出现此页面证明你的程序已经运行成功了,恭喜!         如果启动失败,我们可以查看logs日志内容,如下:

STATUS | wrapper  | 2013/07/30 11:22:47 | --> Wrapper Started as Daemon   STATUS | wrapper  | 2013/07/30 11:22:47 | Java Service Wrapper Community Edition 64-bit 3.5.20   STATUS | wrapper  | 2013/07/30 11:22:47 |   Copyright (C) 1999-2013 Tanuki Software, Ltd. All Rights Reserved.   STATUS | wrapper  | 2013/07/30 11:22:47 |     http://wrapper.tanukisoftware.com   STATUS | wrapper  | 2013/07/30 11:22:47 |    STATUS | wrapper  | 2013/07/30 11:22:47 | Launching a JVM...   INFO   | jvm 1    | 2013/07/30 11:22:47 | WrapperManager: Initializing...   INFO   | jvm 1    | 2013/07/30 11:22:47 | DemoApp: Initializing...   INFO   | jvm 1    | 2013/07/30 11:22:47 | Demo: start()   INFO   | jvm 1    | 2013/07/30 11:22:47 | Demo: Showing dialog...   INFO   | jvm 1    | 2013/07/30 11:22:47 | Demo:    INFO   | jvm 1    | 2013/07/30 11:22:47 | Demo: ERROR - Unable to display the GUI:   INFO   | jvm 1    | 2013/07/30 11:22:47 | Demo:           java.awt.HeadlessException:    INFO   | jvm 1    | 2013/07/30 11:22:47 | No X11 DISPLAY variable was set, but this program performed an operation which requires it.   INFO   | jvm 1    | 2013/07/30 11:22:47 | Demo:    INFO   | jvm 1    | 2013/07/30 11:22:47 | Demo: This demo requires a display to show its GUI.  Exiting...   INFO   | jvm 1    | 2013/07/30 11:22:48 | Demo: stop(0)   STATUS | wrapper  | 2013/07/30 11:22:49 | 


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有